package com.sh.personnel.util;


import java.util.Random;
import java.util.UUID;

/**
 * lsh随机码工具类
 * @author 林思浩
 * @date 2020/01/28 0:22
 */

public class RandomUtil {

    private static String letters = "abcdefghijklmnopqrstuvwxyz";

    /**
     * 生成数字随机数
     * @param amount 随机数长度
     * @return
     */
    public static String randomNumber(int amount) {
        StringBuffer str = new StringBuffer();
        Random random = new Random();
        for(int i=0;i<amount;i++) {;
            str.append(random.nextInt(10));
        }
        return str.toString();
    }

    /**
     * 生成UUID随机码（去“-”）
     * @return
     */
    public static String generateUuid() {
        UUID uuid = UUID.randomUUID();
        String str = uuid.toString().replace("-", "");
        return str;
    }

    /**
     * 生成当前时间毫秒数作为随机码
     * @return
     */
    public static String randomCurrentTimeMillis() {
        String str = String.valueOf(System.currentTimeMillis());
        return str;
    }

    /**
     * 生成带字母前缀的时间毫秒数随机码
     * @param letterAmount 前缀字母长度
     * @param division 分隔符
     * @return
     */
    public static String randomCurrentTimeMillisPrefixLetter(int letterAmount, char division) {
        StringBuffer str = new StringBuffer();
        Random random = new Random();
        for(int i=0;i<letterAmount;i++) {
            str.append(letters.charAt(random.nextInt(26)));
        }
        str.append(division);
        str.append(System.currentTimeMillis());
        return str.toString();
    }

    /**
     * 生成当前时间毫秒数作为随机码
     * @param startIndex 截取开始索引
     * @return
     */
    public static String randomCurrentTimeMillisLocal(int startIndex) {
        String str = String.valueOf(System.currentTimeMillis());
        return str.substring(startIndex, str.length()-1);
    }
    
    /**
     * 生成带字母前缀的数字随机码
     * @param letterAmount 前缀字母长度
     * @param numberAmount 数字长度
     * @param division 分隔符
     * @return
     */
    public static String randomNumberPrefixLetter(int letterAmount, int numberAmount, char division) {
        StringBuffer str = new StringBuffer();
        Random random = new Random();
        for(int i=0;i<letterAmount;i++) {
            str.append(letters.charAt(random.nextInt(26)));
        }
        str.append(division);
        for(int i=0;i<numberAmount;i++) {
            str.append(random.nextInt(10));
        }
        return str.toString();
    }

    /**
     * 生成带字母后缀的数字随机码
     * @param numberAmount 数字长度
     * @param letterAmount 前缀字母长度
     * @param division 分隔符
     * @return
     */
    public static String randomNumberSuffixLetter(int numberAmount, int letterAmount, char division) {
        StringBuffer str = new StringBuffer();
        String letters = "abcdefghijklmnopqrstuvwxyz";
        Random random = new Random();
        for(int i=0;i<numberAmount;i++) {
            str.append(random.nextInt(10));
        }
        str.append(division);
        for(int i=0;i<letterAmount;i++) {
            str.append(letters.charAt(random.nextInt(26)));
        }
        return str.toString();
    }

    
}
